1. Field of the Invention
The present invention relates generally to making computer systems more user-friendly, and in particular, to a method and apparatus for conveniently clearing the basic input/output system (BIOS) parameter settings from a nonvolatile memory in a computer.
2. Description of Related Art
Personal computers include a basic input/output system (BIOS) stored in nonvolatile memory. The BIOS is a set of instructions which are executed to conduct the system initialization and to provide control of low level functions in the computer. Normally, the nonvolatile memory is an electrically-erasable read-only memory (EEPROM) chip, which allows the BIOS to be updated through software control. This is commonly called a "flash" BIOS. Under normal circumstances, the BIOS ROM is permanent and there is normally no need to deal with it.
In addition to the BIOS ROM, most conventional computer systems include a small CMOS memory and real time clock (RTC) unit. This component keeps track of the time and date, and stores BIOS configuration parameters when the computer was turned off, so that this information is readily available when the computer is turned back on. To preserve this information while the computer is off, this component also includes a low-power, long life battery.
The acronym CMOS stands for "Complementary Metal Oxide Semiconductor", and generally refers to one type of technology used to make semiconductor devices (i.e. integrated circuits) such as processors, chipset chips, DRAM, etc. Devices constructed using CMOS technology advantageously require very little power compared to other semiconductor technologies. Consequently, CMOS technology is a natural choice for implementing the memory and RTC unit so that the amount of power required from the battery is minimal, and the battery would last a longer. This memory came to be called just "CMOS", since in the early days of personal computer development most parts of the computer did not use CMOS. Although modem processors are typically made entirely with CMOS technology, "CMOS" by itself usually still refers to the BIOS settings memory.
The information stored by the CMOS memory typically includes the type of floppy disk drive, hard disk settings, the amount of memory, clock speeds, wait states, passwords, initial boot drive selection, and other configuration parameters. The BIOS directs the processor to retrieve this information to make the boot-up process more efficient. The CMOS used to be relatively small, about 64 or 128 bytes. As the complexity of computers has increased, the number of configuration parameters has increased. To keep pace with the increased number of parameters, the CMOS has been expanded (e.g. to 2048 bytes) to allow storage of additional parameters such as power management configuration parameters and resource assignments for Plug and Play systems. The increased number of parameters has increased the likelihood of an incorrect parameter being present, whether due to faulty user entry or to corruption of the memory contents. This is of utmost concern since the presence of an error in CMOS may render the computer unbootable, and this error may not be rectified by simply re-booting the computer due to the nonvolatile nature of the CMOS memory.
Since it in not uncommon for computer systems to develop incorrect or corrupted CMOS data, system designers have developed some techniques to clear CMOS memory. Certain few versions of BIOS will clear the CMOS settings if the &lt;Insert&gt; key on the keyboard is held down by the user while the computer is performing its boot process. More commonly, computer manufacturers provide a jumper on the "motherboard" (the main circuit board in the computer) that connects the battery to the CMOS memory. To clear the CMOS memory, the user must unplug the computer, open the case, locate the jumper and remove the jumper and thereby disconnect the battery from the CMOS memory. Without power, the CMOS memory will eventually lose all the stored information. This time period may be relatively lengthy because stray capacitance in the system may need to completely discharge before the CMOS memory clears. To speed up the process, some manufacturers provide a second jumper setting to ground the positive power supply input to the CMOS memory. In this case, the jumper is moved from a first setting to the second setting, left there for 30 seconds, and then replaced to the first setting. Grounding the positive power supply input discharges stray capacitance at a much higher rate.
Most computer users find it undesirable, if not frustrating, to open the computer case, to locate a jumper on the motherboard and to remove and replace the jumper. Further, if the user calls for technical assistance, it is very difficult for a computer support person to guide a novice user through this process over the telephone. Providing a CMOS-memory-clear feature through BIOS detection of a key-press may become infeasible as the multitude of alternative input devices and new keyboard configurations become popular. Pointer devices, speech recognition, and touch-sensitive screens may supplant the standard keyboard and require BIOS software to access CMOS prior to detecting the key-press that indicates the contents of CMOS should be ignored and erased. Consequently, a convenient way of clearing CMOS is desired.